<?php

class Session
{
    private $savePath;//存储session的路径,必须是绝对路径
    private $time;//存储session的过期时间,单位是秒
    private $sessionName;//session的名字
    private $sessionValue;//session的值

    public function __construct($savePath)
    {
        //将session存入指定的目录
        $this->savePath = $savePath;
        //注意:这个一定要写在session_start前面
        session_save_path($this->savePath);

        session_start();//开启session
        if (!is_dir($this->savePath)) {
            //默认为最大的权限 0777
            mkdir($this->savePath) or die('系统错误!');
        }
    }

    //创建session  一共三个参数,
    // $name->session名字
    // $val->session值
    // $time->过期时间,默认为30分钟
    public function setSession($name, $val, $time = 1800)
    {
        $this->sessionName = $name;
        $this->sessionValue = $val;
        $this->time = $time;
        if (!isset($_SESSION[$this->sessionName])) {
            if (is_array($this->sessionValue)) {
                foreach ($this->sessionValue as $key => $val) {
                    $_SESSION[$this->sessionName][$key] = $val;
                }
            } else {
                $_SESSION[$this->sessionName]['val'] = $this->sessionValue;
            }
            $_SESSION[$this->sessionName]["startTime"] = time();
        } //这时候说明session已经存在,那么我们判断他是否过期,如果过期,删除session
        else if (isset($_SESSION[$this->sessionName]["startTime"]) && time() - $_SESSION[$this->sessionName]['startTime'] >= $this->time) {
            unset($_SESSION[$this->sessionName]);
        }
    }
}

?>